/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.gameserver.templates.chars;

import net.sf.l2j.gameserver.templates.StatsSet;

/**
 * This class ...
 *
 * @version $Revision: 1.2.4.6 $ $Date: 2005/04/02 15:57:51 $
 */
public class L2CharTemplate
{
// BaseStats
public final int baseSTR;
public final int baseCON;
public final int baseDEX;
public final int baseINT;
public final int baseWIT;
public final int baseMEN;
public float baseHpMax;
public final float baseCpMax;
public final float baseMpMax;

/** HP Regen base */
public final float baseHpReg;

/** MP Regen base */
public final float baseMpReg;

public final int basePAtk;
public final int baseMAtk;
public final int basePDef;
public final int baseMDef;
public final int basePAtkSpd;
public final int baseMAtkSpd;
public final float baseMReuseRate;
public final int baseShldDef;
public final int baseAtkRange;
public final int baseShldRate;
public final int baseCritRate;
public final int baseMCritRate;
public final int baseWalkSpd;
public final int baseRunSpd;

// SpecialStats
public final int baseBreath;
public final int baseAggression;
public final int baseBleed;
public final int basePoison;
public final int baseStun;
public final int baseRoot;
public final int baseMovement;
public final int baseConfusion;
public final int baseSleep;
public final int baseVampChance;
public int baseFire;
public int baseWind;
public int baseWater;
public int baseEarth;
public int baseHoly;
public int baseDark;
public final double baseAggressionVuln;
public final double baseBleedVuln;
public final double basePoisonVuln;
public final double baseStunVuln;
public final double baseRootVuln;
public final double baseMovementVuln;
public final double baseConfusionVuln;
public final double baseSleepVuln;
public int baseFireRes;
public int baseWindRes;
public int baseWaterRes;
public int baseEarthRes;
public int baseHolyRes;
public int baseDarkRes;
public final double baseCritVuln;

public final boolean isUndead;

//C4 Stats
public final int baseMpConsumeRate;
public final int baseHpConsumeRate;

private final int   collisionRadius;
private final int   collisionHeight;

public L2CharTemplate(StatsSet set)
{
	// Base stats
	baseSTR = set.getInteger("baseSTR");
	baseCON = set.getInteger("baseCON");
	baseDEX = set.getInteger("baseDEX");
	baseINT = set.getInteger("baseINT");
	baseWIT = set.getInteger("baseWIT");
	baseMEN = set.getInteger("baseMEN");
	baseHpMax = set.getFloat("baseHpMax");
	baseCpMax = set.getFloat("baseCpMax");
	baseMpMax = set.getFloat("baseMpMax");
	baseHpReg = set.getFloat("baseHpReg");
	baseMpReg = set.getFloat("baseMpReg");
	basePAtk = set.getInteger("basePAtk");
	baseMAtk = set.getInteger("baseMAtk");
	basePDef = set.getInteger("basePDef");
	baseMDef = set.getInteger("baseMDef", 34);
	basePAtkSpd = set.getInteger("basePAtkSpd");
	baseMAtkSpd = set.getInteger("baseMAtkSpd");
	baseMReuseRate = set.getFloat("baseMReuseDelay", 2.3f);
	baseShldDef = set.getInteger("baseShldDef");
	baseAtkRange = set.getInteger("baseAtkRange");
	baseShldRate = set.getInteger("baseShldRate");
	baseCritRate = set.getInteger("baseCritRate");
	baseMCritRate = set.getInteger("baseMCritRate", 60); // CT2: The magic critical rate has been increased to 10 times.
	baseWalkSpd = set.getInteger("baseWalkSpd");
	baseRunSpd = set.getInteger("baseRunSpd");
	
	// SpecialStats
	baseBreath = set.getInteger("baseBreath", 100);
	baseAggression = set.getInteger("baseAggression", 0);
	baseBleed = set.getInteger("baseBleed", 0);
	basePoison = set.getInteger("basePoison", 0);
	baseStun = set.getInteger("baseStun", 0);
	baseRoot = set.getInteger("baseRoot", 0);
	baseMovement = set.getInteger("baseMovement", 0);
	baseConfusion = set.getInteger("baseConfusion", 0);
	baseSleep = set.getInteger("baseSleep", 0);
	baseVampChance = set.getInteger("baseVampChance", 3);
	baseFire = set.getInteger("baseFire", 0);
	baseWind = set.getInteger("baseWind", 0);
	baseWater = set.getInteger("baseWater", 0);
	baseEarth = set.getInteger("baseEarth", 0);
	baseHoly = set.getInteger("baseHoly", 0);
	baseDark = set.getInteger("baseDark", 0);
	baseAggressionVuln = set.getInteger("baseAaggressionVuln", 1);
	baseBleedVuln = set.getInteger("baseBleedVuln", 1);
	basePoisonVuln = set.getInteger("basePoisonVuln", 1);
	baseStunVuln = set.getInteger("baseStunVuln", 1);
	baseRootVuln = set.getInteger("baseRootVuln", 1);
	baseMovementVuln = set.getInteger("baseMovementVuln", 1);
	baseConfusionVuln = set.getInteger("baseConfusionVuln", 1);
	baseSleepVuln = set.getInteger("baseSleepVuln", 1);
	baseFireRes = set.getInteger("baseFireRes", 0);
	baseWindRes = set.getInteger("baseWindRes", 0);
	baseWaterRes = set.getInteger("baseWaterRes", 0);
	baseEarthRes = set.getInteger("baseEarthRes", 0);
	baseHolyRes = set.getInteger("baseHolyRes", 0);
	baseDarkRes = set.getInteger("baseDarkRes", 0);
	baseCritVuln = set.getInteger("baseCritVuln", 1);
	
	isUndead = (set.getInteger("isUndead", 0) == 1);
	
	//C4 Stats
	baseMpConsumeRate = set.getInteger("baseMpConsumeRate", 0);
	baseHpConsumeRate = set.getInteger("baseHpConsumeRate", 0);
	
	// Geometry
	collisionRadius = set.getInteger("collision_radius");
	collisionHeight = set.getInteger("collision_height");
}

public int getCollisionRadius()
{
	return collisionRadius;
}

public int getCollisionHeight()
{
	return collisionHeight;
}
}
